package cn.shengchao.examstar.knowledge.shared.service;

import cn.shengchao.examstar.knowledge.shared.dto.CourseKnowledgeDTO;
import cn.shengchao.examstar.knowledge.shared.dto.MasteryAnalysisDTO;

import java.util.List;

/**
 * 课程知识点服务
 * 集成课程和知识点信息的共享服务
 */
public interface CourseKnowledgeService {

    /**
     * 获取用户的课程知识点信息
     *
     * @param userId 用户ID
     * @param courseId 课程ID
     * @return 课程知识点信息
     */
    CourseKnowledgeDTO getUserCourseKnowledge(Long userId, Long courseId);
    
    /**
     * 获取用户的所有课程知识点信息
     *
     * @param userId 用户ID
     * @return 课程知识点信息列表
     */
    List<CourseKnowledgeDTO> getUserAllCoursesKnowledge(Long userId);
    
    /**
     * 获取特定类目下用户的课程知识点信息
     *
     * @param userId 用户ID
     * @param specificationTypeId 类目ID
     * @return 课程知识点信息列表
     */
    List<CourseKnowledgeDTO> getUserCourseKnowledgeBySpecificationType(Long userId, Long specificationTypeId);
    
    /**
     * 获取特定课程的知识点掌握度分析
     *
     * @param userId 用户ID
     * @param courseId 课程ID
     * @return 知识点掌握度分析
     */
    MasteryAnalysisDTO getCourseKnowledgeMasteryAnalysis(Long userId, Long courseId);
} 